// 声明打包模式
module.exports = {
  chainWebpack: (config) => {
    // 发布模式打包
    config.when(process.env.NOdE_ENV === "production", (config) => {
      // entry是声明入口文件，add是声明打包方式
      config.entry("app").clear().add("./src/main-prod.js");
      // 排除第三方依赖项，通过externals 加载外部cdn资源，不打包进包内
      config.set("externals", {
        // 键值对形式，前面是导入包的包名，后面是自定义声明的名字
        // 之后要去到public文件夹下的index.html下将来所有组件所需的样式使用script link的形式导入进来
        vue: "Vue",
        "vue-router": "VueRouter",
        axios: "axios",
        lodash: "_",
        echarts: "echarts",
        nprogress: "NProgress",
        "vue-quill-editor": "VueQuillEditor",
      });
      // 自定义首页内容,true和false控制
      config.plugin("html").tap((args) => {
        args[0].isProd = true;
        return args;
      });
    });
    // 开发模式打包
    config.when(process.env.NOdE_ENV === "development", (config) => {
      // entry是声明入口文件，add是声明打包方式
      config.entry("app").clear().add("./src/main-dev.js");
      config.plugin("html").tap((args) => {
        args[0].isProd = false;
        return args;
      });
    });
  },
};
